#ifndef MOCHA_DETAIL_EXPORTED_EVENT_QUEUE_PLUGIN_HPP_INCLUDED
#define MOCHA_DETAIL_EXPORTED_EVENT_QUEUE_PLUGIN_HPP_INCLUDED

/**
 * @file
 */

#include <cstdint>
#include "mocha/exported_object.hpp"
#include "mocha/event_queue_plugin.hpp"

namespace mocha {
/**
 * 
 * @param P 
 * @param I 
 * @see c_event_queue_plugin
 * @see event_queue_plugin
 */
template<typename P, typename I = c_event_queue_plugin>
class exported_event_queue_plugin : public exported_object<P, I, c_event_queue_plugin, event_queue_plugin>, private c_event_queue_plugin, public event_queue_plugin {
public:
	exported_event_queue_plugin() {
		c_event_queue_plugin::self = static_cast<c_event_queue_plugin*>(this);
	}
	virtual ~exported_event_queue_plugin() {}
private:
};
}

#endif

